package ge.modules.ia;


/**
 *  Message is a structure used to send information between states machines
 * @author abel.botrdonado
 *
 */
public class Message
{
	public StateMachineModule<?> sender;
	public StateMachineModule<?> reciver;
	
	public Integer delay;
	public Integer messageType;
	
	public Object extraInfo;
	/**
	 * 	Message object
	 * @param sender  You
	 * @param reciver State Machine who are you sending the message
	 * @param messageType A int which can be identified by the receiver
	 * @param delay How many time has the message to wait before it0s sent to the receiver. In milliseconds.
	 * 	This date is manipulate by the state machine, then don't use it when you receive the message
	 * @param extraInfo
	 */
	public Message(StateMachineModule<?> sender, StateMachineModule<?> reciver,int messageType, int delay, Object extraInfo )
	{
		this.sender = sender;
		this.reciver = reciver;
		this.messageType = messageType;
		this.delay = delay;
		this.extraInfo = extraInfo;
	}
}
